Storage systems using redundant array of independent disks (RAID) technology are widely used these days to prevent data loss caused by disk drive failures. Note that RAID technology is also known in the art as redundant array of inexpensive drives. In a RAID system, data is arranged across multiple disk drives (or a RAID disk array) to support redundancy and/or improved access, depending on a level of the RAID system. RAID systems may be categorized into different RAID levels (e.g., RAID 1, . . . , RAID 6), according to the method of data arrangement on the disk drive and the method of providing data redundancy. For example, RAID 1 allows data to be simultaneously written to two or more disk drives, resulting in duplication of data in the disk drives. Therefore, RAID 1 is also referred to as “mirroring.” As another example, with RAID 5, data are stripped across three or more drives for performance, and parity bits, distributed across all the drives, are used for fault tolerance. Upon a single drive failure, any subsequent reads may be calculated from the distributed parity such that the drive failure is masked from an end user. A RAID controller may control RAID read/write operations.
RAID technology involves write operations across multiple disks. With RAID 5 and RAID 6 arrays, for example, multiple disk input/outputs are required for each write operation. For example, a single write operation of a track may result in as many as four drive operations in case of RAID 5 array and six drive operations in case of RAID 6 array. Typically, a write operation to a block of a RAID 5 volume may be dispatched as two read operations and two write operations. And each write operation of a block of a RAID 5 volume involves a change in corresponding parity bits. Such complex operations frequently require data to be buffered or cached in a memory. In standard RAID technology, volatile memories (such as a double data rate synchronous dynamic random access memory (DDR SRAM)) or other appropriate volatile memories) are widely used as the buffer or the cache. The RAID controller may also store other information (e.g., configuration information or any other appropriate information) in the volatile memory.
FIG. 1 is a block diagram of an exemplary RAID system 10. Note that the system of FIG. 1 illustrates only the relevant components. Various other components of the system, well known to those skilled in the art, have been omitted for clarity.
The system 10 of FIG. 1 includes a RAID controller 12 coupled to a RAID disk array 16 that may include a plurality of RAID disk drives 16A, . . . , 16N. The system 10 of FIG. 1 also includes a server 20 coupled to the RAID controller 12. The RAID controller 12 is also coupled to a volatile memory 24. The RAID controller 12 may be coupled to each of the RAID disk array 16, server 20, and volatile memory 24 through one or more respective interfaces that are well known in the art, although not illustrated in FIG. 1. For example, the RAID controller 12 may be coupled to the volatile memory 24 through a memory interface.
In the system 10 of FIG. 1, the server 20 may write data to one or more RAID disk drives 16A, . . . , 16N or may read data from one or more of the disk drives through the RAID controller 12, as well known to those skilled in the art. The RAID controller 12 may use the volatile memory 24 for buffering data, storing data, and/or may use the volatile memory 24 as a cache.
The RAID system 10, including RAID controller 12 and volatile memory 24, may be powered by a main power supply (not illustrated in FIG. 1). Since the main power supply can fail at any time, the RAID system 10 may have a battery backup unit (BBU) 34 to power the volatile memory 24 while the main power supply is down. An example of the BBU 34 is an UPS (uninterruptable power supply). As would be readily appreciated by those skilled in the art, although not illustrated, the BBU 34, along with supplying power to the volatile memory 24, may also supply power to other components in the RAID system 10 and/or other components of a computing device in which the RAID system 10 is included.
The BBU 34 may be necessary, among other things, to maintain data integrity in the volatile memory 24 in the event of main power failure. The BBU 34 may be needed to power the volatile memory 24 until the main power supply resumes. Accordingly, the BBU 34 should preferably have sufficient capacity to power the volatile memory 24 and/or other components of the computing device (in which the RAID system 10 is included) for the entire duration the main power supply fails. If the duration of the main power failure exceeds the maximum capacity of the BBU 34, data in the volatile memory 24 may be lost.